1 解决的问题

在64位linux运行可执行文件的时候,出现no such file or directory,文件明明存在,肯定有其他问题。

2 解决路径

  • 查看文件的依赖: ldd xxx ldd,发现找不到动态链接库
  • 查看文件信息: file xxx [file][4],发现时32位环境编译的
  • 查看文件加载信息: readelf -l xxx |grep interpreter [readelf][4],发现是存在的
  • 把没有的库加上,安装ia32libs 或者到其他机子上把想要的动态库拿过来
  • 在/etc/ld.so.conf中加入文件路径,最好在/etc/ld.so.conf.d/下新建一个文件,然后将我们的动态链接库的路径写进去
  • 运行ldconfig [ldconfig][5],将我们的库加载进来
  • 查看文件的依赖: ldd xxx ldd,看看还有没有not found
  • happy 运行~

建议: 部署这样程序的时候,自己带上自己需要的库,并加载到系统中

3 参考

  1. bash: ***: No such file or directory
  2. cannot open shared object file: No such file or directory解决
  3. [Linux 共享库][6]

[4]: http://man.linuxde.net/file “file” “readelf”
[5]: http://man.linuxde.net/ldconfig “ldconfig”
[6]: http://blog.csdn.net/ming470612141/article/details/3348063 “Linux 共享库”

最后更新: 2022年03月02日 03:32

原始链接: http://rawbin-.github.io/dev-env/2015-03-05-dev-deploy-env/

× 赞赏这个人~
打赏二维码